Compilation Error Repair: For the Student Programs, From the Student Programs
ثبت نشده
چکیده
recommendation to obtain a program that can be compiled. For this purpose, the Edlib tool [22] is used to compute the sequence alignment of the source-abstraction with recommended-abstraction (that is output by the RNN framework), based on edit distance. This sequence alignment is represented as a cigar string, a compact representation consisting of a chain of operators; primarily Match (=), Insert (I), Delete (D) or Mismatch/Replace (X). Each successful match with source-abstraction is replaced with corresponding concrete-code from (non-abstract) source-line. For mis-matches and inserts, TRACER replaces the recommendedabstract type with the closest concrete-code having the same type from the symbol table that is maintained by TRACER. An example of the concretization step is presented in Table 3. 3.5 Multiple Error Lines Although the discussion so far has focused on programs where the fix is required on a single line, TRACER can be adapted to repair programs with errors present across multiple lines as well. In our dataset, we observed that a large portion of programs having errors onmultiple lines can be interpreted as simplymultiple instances of single line errors, i.e. the errors in the multiple lines in these programs are not correlated and fixes may be applied to the lines individually. Hence, given a multi-line error program, TRACER (1) Error Localization: TRACER fetches all the source-lines flagged by compiler for error, as well as the lines just above and just below those lines. (2) Code Abstraction: TRACER obtains source-abstractions for the above source-lines. (3) Abstract Code Repair Prediction: TRACER executes the RNN model on these source-abstractions to get the top-5 recommended-abstractions for each line. (4) Concretization: TRACER finally refines each of the recommended-abstractions to generate concrete, repaired code, and checks if the compiler error associated with that particular line disappears on applying the repair. If so, the concrete-code is retained as the fix for the corresponding source-line. We consider a multi-repair done as outlined above, to be successful, only if all compiler errors are resolved as a result. 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 Compilation Error Repair: For the Student Programs, From the Student Programs ICSE-SEET’18, May 27-June 3 2018, Gothenburg, Sweden
منابع مشابه
Automated Correction for Syntax Errors in Programming Assignments using Recurrent Neural Networks
We present a method for automatically generating repair feedback for syntax errors for introductory programming problems. Syntax errors constitute one of the largest classes of errors (34%) in our dataset of student submissions obtained from a MOOC course on edX. The previous techniques for generating automated feedback on programming assignments have focused on functional correctness and style...
متن کاملSearch, Align, and Repair: Data-Driven Feedback Generation for Introductory Programming Exercises
This paper introduces the “Search, Align, and Repair” datadriven program repair framework to automate feedback generation for introductory programming exercises. Distinct from existing techniques, our goal is to develop an efficient, fully automated, and problem-agnostic technique for large or MOOC-scale introductory programming courses. We leverage the large amount of available student submiss...
متن کاملSimulating Student Programmers
A cognitive model of student programmers is presented. The model is based on protocol studies of students wri t ing Pascal programs, and is implemented in a computer simulation program. The claim of this paper is that a computational cognitive model of student program generation fits within a generate-test-and-debug (GTD) problem solving architecture in which impasse/repair knowledge plays a ke...
متن کاملData-Driven Feedback Generation for Introductory Programming Exercises
This paper introduces the “Search, Align, and Repair” datadriven program repair framework to automate feedback generation for introductory programming exercises. Distinct from existing techniques, our goal is to develop an efficient, fully automated, and problem-agnostic technique for large or MOOC-scale introductory programming courses. We leverage the large amount of available student submiss...
متن کاملAutomatic program debugging for intelligent tutoring systems
Program debugging is an important part of the domain expertise required for intelligent tutoring systems that teach programming languages. This article explores the process by which student programs can be automatically debugged in order to increase the instructional capabilities of these systems. The research presented provides a methodology and implementation for the diagnosis and correction ...
متن کامل